package com.flink.batch.core;

import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.tuple.Tuple4;

/**
 * @version v1.0
 * @ProjectName flinkwarehouse
 * @ClassName ReadCvsDemo
 * @Description TODO 读cvs 文件的实例
 * @Author wudl
 * @Date 2020/8/28 13:59
 */

public class ReadCvsDemo {
    public static void main(String[] args) throws Exception {
        // 获取flink 上下文环境
        ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

        /**
         *   参数说明
         *includeFields 表示读取那一列  1 表示要读取的列， 0 表示不要读取的列,  和后面的类型相对应
         *ignoreComments： 表示忽略的列
         *lineDelimiter： 表是行与行之间是怎么分割的
         *fieldDelimiter： 列与列之间的分割符是什么
         *ignoreFirstLine： 是否忽略第一行
         *
         */
        DataSet<Tuple4<Integer, Integer, String, String>> csvDS = env.readCsvFile("F:\\ideaWorkSpace2020\\flinkwarehouse\\src\\main\\resources\\user.csv")
//                .includeFields("11100")
                .includeFields("11110")
                .ignoreInvalidLines()
                .ignoreComments("101")
//                .ignoreFirstLine()
                .lineDelimiter("\n")
                .fieldDelimiter(",")
                .types(Integer.class, Integer.class, String.class, String.class);
        csvDS.print();

    }

}
